/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.admin.service;

import org.springblade.modules.admin.dto.parts.SparepartPricesSearchDTO;
import org.springblade.modules.admin.entity.SparepartPrices;
import org.springblade.modules.admin.vo.SparepartPricesVO;
import org.springblade.core.mp.base.BaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.admin.vo.parts.*;

import java.util.List;

/**
 *  服务类
 *
 * @author ysq
 * @since 2022-06-28
 */
public interface ISparepartPricesService extends BaseService<SparepartPrices> {


	/**
	 * 报价分页
	 * @param sparepartPrices 查询对象
	 * @return 数据集
	 */
	IPage<SparepartPricesVO> selectSparepartPricesPage(SparepartPricesSearchDTO sparepartPrices);

	/**
	 * excel信息下载
	 * @param sparepartPrices
	 * @return
	 */
	List<SparepartPricesVO> downExcel(SparepartPricesSearchDTO sparepartPrices);

	/**
	 *获取报价明细
	 * @param id id值
	 * @return 数据集
	 */
	SparepartPricesDetailVo detail(Long id);

	/**
	 * 批量审核报价信息
	 * @param sparepartPricesList 报价信息
	 * @return 数据集
	 */
	Boolean updateBatch(List<SparepartPrices> sparepartPricesList);

	/**
	 * 获取报价记录
	 * @param sparepartPrices
	 * @return
	 */
	IPage<SparepartPricesListVo> list(SparepartPricesSearchDTO sparepartPrices);

	/**
	 * 获取报价明细
	 * @param parentPlanId 维修工单id
	 * @param groupId 组id
	 * @return 数据集
	 */
	SparepartPricesListDetailVo getSparepartPricesDetail(Long parentPlanId, Long groupId);

	/**
	 * 获取报价记录明细
	 * @param sparepartPricesSearchDTO 查询条件
	 * @return 数据集
	 */
	List<SparepartPricesListVo> downDetailExcel(SparepartPricesSearchDTO sparepartPricesSearchDTO);

	/**
	 * 配件任务调度列表
	 * @param sparepartPrices 查询条件
	 * @return 数据集
	 */
    IPage<SparepartPricesVO> dispatchList(SparepartPricesSearchDTO sparepartPrices);

	/**
	 * excel信息下载
	 * @param sparepartPrices
	 * @return
	 */
	List<SparepartPricesVO> downDispatchExcel(SparepartPricesSearchDTO sparepartPrices);

	/**
	 * 配件分页
	 * @param sparepartPrices 查询条件
	 * @return 配件列表
	 */
	IPage<SparepartPricesVO> planPage(SparepartPricesSearchDTO sparepartPrices);

	/**
	 * 获取配置工单的统计信息
	 * @return 数据集
	 */
	PlanPartSummaryVo getPlanPartSummary();

	/**
	 * v1--保留一段时间
	 * 获取配件任务的角标
	 * @return 数据集
	 */
    List<PartIconVo> getPartIconList();

	/**
	 * v2 - 优化版
	 * 获取配件任务的角标
	 * @return 数据集
	 */
	List<PartIconVo> getPartIconListV2();

	/**
	 * 根据父id获取关联的配件
	 * @param parentId 父id
	 * @return 数据集
	 */
	List<SparepartPricesVO> getRelationPartsByParentId(Long parentId);

	/**
	 * 配件任务调度列表V2
	 * @param sparepartPrices 查询条件
	 * @return 结果
	 */
	IPage<SparepartPricesVO> dispatchListV2(SparepartPricesSearchDTO sparepartPrices);

}
